home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / data / dora / dorachat.plp < prev    next >
Text File  |  1995-08-17  |  11KB  |  400 lines

  1. /*    CHAT LOG DOWN START        */
  2. %CHATlog{var DAY1[24];var DAY2[10];
  3.     CHeck:={Yes};
  4.     DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2)|@getchar(DAY1,9,2));
  5.     footnote({読み込みを開始します});
  6.     dispoff(!DEBUG);mkdir2(LOG2|{freelog});dispoff({No});
  7.     receive(LOG2|{freelog\}|NET|DAY2|{.log});
  8.     };
  9. %Wm    {SNDMSG({kaknin_f.snd});footnote({自由行動のログはどうします?});
  10.     case    (CHeck,
  11.         {Yes},
  12.         {select ({記録を終了しますか?},
  13.             Wtime4,,
  14.             { 記録終了 },{stoprec;CHeck:={No};Chat:={};},
  15.             {終了しない},
  16.             )
  17.         },
  18.         {No},
  19.         {select ({記録を開始しますか?},
  20.             Wtime4,,
  21.             { 記録開始 },
  22.             {
  23.             Reclog:={Y};
  24.             case    (freLOG,
  25.                 {Yes},{DOWNSTART},
  26.                 {No},{CHATlog},,{CHATlog}
  27.                 )
  28.             },
  29.             {開始しない},
  30.             )});};
  31.  
  32. %retDORA{footnote({自由行動の終了処理中です});chat({No});
  33.     case    (CHeck,{Yes},{DOWNSTOP},{No},);
  34.     footnote({自由行動を終了しました});type({//\n});
  35.     preRetM};
  36. /************ 未削除のメールを全て読む ****************/
  37. %allMAIL{type({ML\n});
  38.     wait(Wtime2,,{>},{type({\n})})};
  39. %GOCHAT    {
  40.     case    (AM3={Detail},
  41.         {Yes},
  42.         {display({自動実行のため、自由行動は省略します\n})},
  43.         {No},
  44.         {
  45.     footnote({自由行動を開始します});wait(1);
  46.         CHeck:={No};Wm;chat({Yes});
  47.         loop    ({footnote({終了記録MAILステタスチャット誘惑}|
  48.              {トーク 端末//  LIB WHO },{b});
  49.             waitx(300);
  50.             case    (@xtype,
  51.                 {-2},{SNDMSG({jikan_f.snd});im({Yes})},
  52.     {101},{SNDMSG({erande_f.snd});
  53.     select    ({処理を選択して下さい},Wtime4,{im({Yes})},
  54.     {  終    了  },{retDORA;Ex:={Y};im({No})},{  取    消  },{im({Yes})})},
  55.     {201},{SNDMSG({kaknin_f.snd});
  56.     select    ({確認して下さい},Wtime4,{im({Yes})},
  57.     {  終    了  },{retDORA;Ex:={Y};im({No})},{  取    消  },{im({Yes})})},
  58.     {102},{Wm;im({Yes})},
  59.     {202},{Wm;im({Yes})},
  60.     {103},{allMAIL;im({Yes})},    {203},{allMAIL;im({Yes})},
  61.     {104},{type({#\n});im({Yes})},    {204},{type({#\n});im({Yes})},
  62.     {105},{FRee2;im({Yes})},    {205},{FRee2;im({Yes})},
  63.     {106},{Ccom:={};TALK;im({Yes})},{206},{Ccom:={};TALK;im({Yes})},
  64.     {107},{type({T\n});im({Yes})},    {207},{type({T\n});im({Yes})},
  65.     {108},{type({I\n});im({Yes})},    {208},{type({I\n});im({Yes})},
  66.     {109},{type({//\n});im({Yes})},    {209},{type({//\n});im({Yes})},
  67.     {110},{type({F\n});im({Yes})},    {210},{type({F\n});im({Yes})},
  68.     {111},{type({W\n});im({Yes})},    {211},{type({W\n});im({Yes})},
  69.                 ,{im({Yes})}
  70.                 );
  71.             })
  72.         })
  73.     };
  74.  
  75. %FRee2    {
  76.     var MEMO[1];        /*    ハンドルリストのメモ番号    */
  77.     var HANDLE2[20];
  78.     var HANDLE3[500];    /*    「専念モード」用ハンドルデータ用*/
  79.     var foottxt[48];    /*    「専念モード」footnote    */
  80.     var A[2];        /*    ただのカウント用    */
  81.     MEMO:=@mlast+1;
  82.     Chat:={Y};type({C\n});
  83.     wait    (2,{SssTyp:={}}
  84.         ,{Time},{SssTyp:={}}
  85.         ,{/?},{SssTyp:={Yes}});
  86.     loop    ({
  87.         footnote({▼▼    誘惑専念偵察},{b});
  88.         waitx    (300);
  89.         case    (SssTyp
  90.             ,{Yes},{Ccom:={/}}
  91.             ,,{Ccom:={}});
  92.         case    (@xtype,
  93.             {-2},{im({Yes})},
  94.             {101},{rtcend;im({No})},
  95.             {201},{rtcend;im({No})},
  96.             {103},
  97.             {type({//\n});Ccom:={};TALK;type({C\n});im({Yes})},
  98.             {203},
  99.             {type({//\n});Ccom:={};TALK;type({C\n});im({Yes})},
  100.             {104},{SPEMODE;im({Yes})},
  101.             {204},{SPEMODE;im({Yes})},
  102.             {105},{type(Ccom|{W\n});im({Yes})},
  103.             {205},{type(Ccom|{W\n});im({Yes})},
  104.             MEMO,{DOUBLE;im({Yes})},
  105.             ,{im({Yes})}
  106.             );
  107.         });
  108.     };
  109.  
  110. /*    ハンドルリスト取得    */
  111. %Hdl{
  112.     DOWNCHECK;delfile(TEMP2|{_whotext.tmp});receive(TEMP2|{_whotext.tmp});
  113.     type(Ccom|{W\n});
  114.     footnote({アクセス状況をチェックします});
  115.     wait(3);DOWNSTOP;
  116.     case    (Reclog={Y},{Yes},{CHATlog});
  117.     case    (ESCon={No},
  118.         {No},
  119.         {dispoff(!DEBUG);command(CDIR2|{escctr -d}|TEMP2|
  120.         { -K}|TEMP2|{ }|TEMP2|{_whotext.tmp});dispoff({No})
  121.         },,
  122.         );
  123.     };
  124.  
  125. /*    ちゃっとにお誘いする    */
  126. %TALK    {
  127.     Hdl;
  128.     case    (@filechk(TEMP2|{_whotext.tmp})={},
  129.         {Yes},
  130.         {display({アクセスデータの読み込みに失敗しました})},
  131.         {No},{letCHAT}
  132.         );
  133.     };
  134. %letCHAT{
  135.     var WhoRes[1200];
  136.     WhoRes:=@read(TEMP2|{_whotext.tmp});
  137.     var n[2]; n:={0};
  138.     %p @case(@getchar(ID,1,3)={YAG},{Yes},{im({2})},{No},{im({})});
  139.     display({\n ☆☆アクセス状況チェック☆☆\n});
  140.     loop    ({    n:=n+1;
  141.         %a    @getline(WhoRes,n,1);
  142.         case    (a={},    
  143.             {Yes},{im({No})},,
  144.             {%IDNo @strip(@getchar(a,6-p,8));
  145.             case    (@strip(@getchar(a,6-p,3))=@getchar(ID,1,3)||
  146.                 @strip(@getchar(a,6-p,8))={SYSOP},
  147.                 {Yes},
  148.                 {display(IDNo|{を確認しました\n});
  149.                 case    (IDNo<>ID,
  150.                     {Yes},{chatTalk(@getchar(a,4-p,1)
  151.                         ,@getchar(a,15-p,8))},
  152.                     {No},{
  153.                     case    (@getchar(a,1,3)={Ch.},
  154.                         {Yes},{display({Ch}|
  155.                         @getchar(a,4,1)|{には貴方が}|
  156.                         {アクセスしてます\n})
  157.                     });
  158.                     });
  159.                     im({Yes})
  160.                 },
  161.                 {No},
  162.                 {case    (@getchar(a,1,3)={Ch.}    && IDNo<>ID
  163.                      && @nochar(a)>6,
  164.                     {Yes},{display({Ch}|@getchar(a,4,1)|
  165.                     {には誰もアクセスしてません\n})
  166.                     });
  167.                     im({Yes})
  168.                 });
  169.             });
  170.         });
  171.     };
  172. %chatTalk{[chNo,HanDle]
  173.     sendtype({Ch/1});wait(1);type(Ccom|{T\n});
  174.     loop    ({
  175.         wait    (3,{im({Yes})},
  176.         {誰とトークするのかな}
  177.         ,{WaitMK;type(chNo|{\n});im({Yes})},
  178.         {チャンネルを指定して下さい}
  179.         ,{WaitMK;type(chNo|{\n});im({Yes})},
  180.         {メッセージ},{WhisPer},
  181.         {トークモードに入},{WhisPer},
  182.         {トークモードを終了},{im({Yes})},
  183.         {書き込み中なので送れない},{im({No})},
  184.         {,?,0},{im({No})},
  185.         {メイン},{im({No})},
  186.         {メイン},{im({No})},
  187.         {MAIN},{im({No})}
  188.             )
  189.         });
  190.     };
  191. %WhisPer{
  192.     Wellcome;type(HanDle|{さん!\n});wait(1);
  193.     case    (HanDLe={},{No},{type(HanDLe|{です!\n})},,);wait(1);
  194.         type({チャットをやりませんか\n});type({//\n});im({Yes})
  195.     };
  196. %Wellcome{
  197.         %nowhh    @getchar(@daylong,16,2);
  198.     case    (4>=nowhh || nowhh>18,
  199.         {Yes},{type({今晩は})},
  200.         {No},
  201.         {case    (10>=nowhh && nowhh>4,
  202.             {Yes},{type({お早ようございます})},
  203.             {No},
  204.             {case    (18>=nowhh && nowhh>10,
  205.                 {Yes},{type({今日は})}
  206.                 )
  207.             })
  208.         })
  209.     };/*フェイスマークetc・・・・*/
  210. %FAICE    {
  211.     loop    ({
  212.         SNDMSG({erande_f.snd});
  213.         footnote({戻る歓迎歓送脱出}|
  214.              {ヒャーッウインク=^^=ムニョンナマズ}|
  215.              {眠い起る},{b});
  216.         waitx();
  217.         case    (@xtype,
  218.             101,{im({No})},201,{im({No})},
  219.             102,{Wellcome},202,{Wellcome},
  220.             103,{type({さようなら(^_^)/~~~~又ね!})},
  221.             203,{type({さようなら(^_^)/~~~~又ね!})},
  222.             104,{type({では落ちます(^_^)/~~~~ Bye Bye !!})},
  223.             204,{type({では落ちます(^_^)/~~~~ Bye Bye !!})},
  224.             105,{type({ヽ(^o^)丿ヒャーッヒャッヒャッ})},
  225.             205,{type({ヽ(^o^)丿ヒャーッヒャッヒャッ})},
  226.             106,{type({(^_-)})},206,{type({(^_-)})},
  227.             107,{type({(=^^=)})},207,{type({(=^^=)})},
  228.             108,{type({シ^_^ス ムニョーン})},208,{type({シ^_^ス ムニョーン})},
  229.             109,{type({~゚^_^゚~ビックリ})},
  230.             209,{type({~゚^_^゚~ビックリ})},
  231.             110,{type({('0`) ('_;) (=_=) (-_-) (_ _)Zz..})},
  232.             210,{type({('0`) ('_;) (=_=) (-_-) (_ _)Zz..})},
  233.             111,{type({('_`) (>_<) (0_0) (@_@)})},
  234.             211,{type({('_`) (>_<) (0_0) (@_@)})},
  235.             ,{im({Yes})}
  236.             );
  237.         });
  238.     };
  239. /*    専念モード    */
  240. %SPEMODE{
  241.     var B[1];    /*    footnoteのページ    */
  242.     var PF[2];    /*    押したPFキーの番号    */
  243.     B:=1;
  244.     Hdl;
  245.     SPEMODE2;
  246.     SPEMODE3;
  247.  
  248.     loop    ({
  249.         loop    ({
  250.             footnote(foottxt,{b});
  251.             waitx();
  252.             case    (@xtype,
  253.                 {-2},{im({Yes})},
  254.                 {101},{PF:={1};SENDMES;im({No})},
  255.                 {201},{PF:={1};SENDMES;im({No})},
  256.                 {102},{PF:={2};SENDMES;im({No})},
  257.                 {202},{PF:={2};SENDMES;im({No})},
  258.                 {103},{PF:={3};SENDMES;im({No})},
  259.                 {203},{PF:={3};SENDMES;im({No})},
  260.                 {104},{PF:={4};SENDMES;im({No})},
  261.                 {204},{PF:={4};SENDMES;im({No})},
  262.                 {105},{PF:={5};SENDMES;im({No})},
  263.                 {205},{PF:={5};SENDMES;im({No})},
  264.                 {106},{PF:={6};SENDMES;im({No})},
  265.                 {206},{PF:={6};SENDMES;im({No})},
  266.                 {107},{PF:={7};SENDMES;im({No})},
  267.                 {207},{PF:={7};SENDMES;im({No})},
  268.                 {108},{FAICE;im({No})},
  269.                 {208},{FAICE;im({No})},
  270.                 {109},{PF:={13};im({No})},
  271.                 {209},{PF:={13};im({No})},
  272.                 {110},{Hdl;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
  273.                 {210},{Hdl;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
  274.                 {111},{case(B=1,
  275.                     {Yes},{B:=4;SPEMODE3;im({Yes})},
  276.                     {No},{B:=B-1;SPEMODE3;im({Yes})})},
  277.                 {211},{case(B=1,
  278.                     {Yes},{B:=4;SPEMODE3;im({Yes})},
  279.                     {No},{B:=B-1;SPEMODE3;im({Yes})})},
  280.                 {112},{case(B=4,
  281.                     {Yes},{B:=1;SPEMODE3;im({Yes})},
  282.                     {No},{B:=B+1;SPEMODE3;im({Yes})})},
  283.                 {212},{case(B=4,
  284.                     {Yes},{B:=1;SPEMODE3;im({Yes})},
  285.                     {No},{B:=B+1;SPEMODE3;im({Yes})})},
  286.                 ,{im({Yes})}
  287.                 );
  288.             });
  289.         case(PF,13,{im({No})},,{im({Yes})});
  290.         });
  291.     };
  292.  
  293. /*    専念モード宛先付発言送信    */
  294. %SENDMES{
  295.     %C @case(B,    1,{im(PF)},    2,{im({6}+PF)},
  296.             3,{im({12}+PF)},4,{im({18}+PF)});
  297.     %HANDLE    @case    (PF,
  298.             {7},{im({ALL})},
  299.             ,{im(@head(@getline(HANDLE3,C,1),{\n}))}
  300.             );
  301.     case    (HANDLE,
  302.         {},{type({\n})},
  303.         {ALL},{type({>ALL});type({\n})},
  304.         ,{type({>}|HANDLE|{さん});type({\n})}
  305.         );
  306.     };
  307.  
  308. /*    専念モード用ハンドルデータ作成(ハンドル\n・・・)    */
  309. %SPEMODE2{
  310.     case    (@filechk(TEMP2|{_whotext.tmp}),
  311.         {Yes},
  312.         {
  313.         %LIST @read(TEMP2|{_whotext.tmp});
  314.         var n[2]; n:={0};
  315.         %p @case(@getchar(ID,1,3)={YAG},{Yes},{im({2})},{No},{im({})});
  316.         HANDLE3:={};
  317.         loop    ({    n:=n+1;
  318.             %a    @getline(LIST,n,1);
  319.             %IDNo @strip(@getchar(a,6-p,8));
  320.             %IDNo2 @strip(@getchar(a,8-p,8));
  321.             case    (a={},    
  322.                 {Yes},{im({No})},,                                {case(@strip(@getchar(a,6-p,3))=@getchar(ID,1,3)
  323.                     && IDNo<>ID
  324.                     ||@strip(@getchar(a,6-p,5))={SYSOP},
  325.                     {Yes},
  326.                     {%HANDLE @getchar(a,15-p,8);
  327.                     HANDLE3:=HANDLE3|HANDLE|{\n};im({Yes})},
  328.                     {No},
  329.                     {
  330.                     case    (@strip(@getchar(a,8-p,3))=
  331.                         @getchar(ID,1,3)
  332.                         && IDNo2<>ID ||
  333.                         @strip(@getchar(a,8-p,5))
  334.                         ={SYSOP},
  335.                         {Yes},
  336.                         {%HANDLE @getchar(a,17-p,8);
  337.                         HANDLE3:=HANDLE3|HANDLE|{\n};
  338.                         im({Yes})},
  339.                         {No},{im({Yes})}
  340.                         );
  341.                     })
  342.                 })
  343.             });
  344.         });
  345.     };
  346. /*    専念モード用ハンドルデータを元にしてfootnoteのボタンを作る*/
  347. %SPEMODE3{
  348.     %C    @case(B,1,{im({1})},2,{im({7})},3,{im({13})},4,{im({19})});
  349.     %HANDLE @getline(HANDLE3,C);
  350.     var    handle    [4];
  351.     foottxt:={};
  352.     %foottxt2 {----------------------------------------};
  353.     A:=1;
  354.     loop    ({
  355.         handle:=@getchar(@head(@getline(HANDLE,A,1),{\n}),1,4);
  356.         case    (handle={},
  357.             {No},    {
  358.                 case    (@nochar(handle),
  359.                     1,{handle:=handle|{   }},
  360.                     2,{handle:=handle|{  }},
  361.                     3,{handle:=handle|{ }}
  362.                     );
  363.                 foottxt:=foottxt|handle;
  364.                 case(A,6,{im({No})},,{A:=A+1;im({Yes})})
  365.                 },
  366.             {Yes},    {A:=A-1;im({No})});
  367.         });
  368.     case    (A=6,{No},{foottxt:=foottxt|@getchar(foottxt2,1,(6-A)*4)});
  369.     foottxt:=foottxt|{ALL 挨拶戻る偵察前項次項};
  370.     };
  371.  
  372. /*    RTCモード終了処理    */
  373. %rtcend    {
  374.     case(Chat={Y},{Yes},{type({//\n});Chat:={}});
  375.     loop    ({
  376.         case(@mcheck>=MEMO,{Yes},{mclose(3)});
  377.         im(@mcheck>=MEMO);
  378.         });
  379.     CloseAllMemo;
  380.     loop    ({
  381.         case    (@mlast>=MEMO,
  382.             {Yes},
  383.             {
  384.             case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
  385.             mclose(3);
  386.             im({Yes});
  387.             },
  388.             {No},
  389.             {im({No})}
  390.             );
  391.         });
  392.     };
  393.  
  394. var Ex [1]; var Chat [1]; var Reclog [1];
  395. /*チャットコマンド改造ネット対応SSS-NET 「例[/W] ログイン状況」*/
  396. var SssTyp[3];        /* SSS-NETタイプの判定 */
  397. var Ccom[1];Ccom:={};    /* 「/」付加判定 */
  398. DOWNCHECK;pilotch({"});sendtype({Ch/1});
  399. loop({ case (Ex<>{Y},{Yes},{GOCHAT;im({Yes})},{No},{im({No})})});
  400. pilotch({$});sendtype({Line});SssTyp:={};